Stiamo superando i limiti dei modelli lineari, che faticano a classificare dati non separabili da una linea retta. Oggi applichiamo il flusso di lavoro di PyTorch per creare un Reti Neuronal Deep (DNN) in grado di apprendere frontiere di decisione complesse e non lineari essenziali per compiti di classificazione del mondo reale.
1. Visualizzare la Necessità di Dati Non Lineari
Il nostro primo passo consiste nel creare un dataset sintetico impegnativo, come la distribuzione a due mezze lune, per dimostrare visivamente perché i modelli lineari semplici falliscono. Questa configurazione ci obbliga ad utilizzare architetture profonde per approssimare la curva intricata necessaria a separare le classi.
Proprietà dei Dati
- Struttura dei Dati:Caratteristiche dei dati sintetici (ad esempio, $1000 \times 2$ per $1000$ campioni con 2 caratteristiche).
- Tipo di Output: Un singolo valore di probabilità, spesso
torch.float32, che rappresenta l'appartenenza alla classe. - Obiettivo: Creare una frontiera di decisione curvilinea attraverso un calcolo stratificato.
Il Potere delle Attivazioni Non Lineari
Il principio fondamentale delle DNN è l'introduzione della non linearità nei livelli nascosti tramite funzioni come ReLU. Senza queste, impilare livelli porterebbe semplicemente a un grande modello lineare, indipendentemente dalla profondità.
TERMINALEbash — environment-classificazione
> Pronto. Clicca su "Esegui" per avviare.
>
ISPEZIONATORE DI TENSORI In tempo reale
Esegui il codice per ispezionare i tensori attivi
Domanda 1
Qual è lo scopo principale della funzione di attivazione ReLU in un livello nascosto?
Domanda 2
Quale funzione di attivazione è richiesta nel outputlivello per un compito di classificazione binaria?
Domanda 3
Quale funzione di perdita corrisponde direttamente a un problema di classificazione binaria con uscita Sigmoid?
Sfida: Progettare l'Architettura Fondamentale
Integrazione di componenti architettonici per un apprendimento non lineare.
Devi costruire un
nn.Module per il compito delle due mezze lune. Caratteristiche di input: 2. Classi di output: 1 (probabilità).
Passo 1
Descrivi il flusso di calcolo per un singolo livello nascosto in questa DNN.
Soluzione:
Input $\to$ Livello Lineare (Matrice dei Pesi) $\to$ Attivazione ReLU $\to$ Uscita al Prossimo Livello.
Input $\to$ Livello Lineare (Matrice dei Pesi) $\to$ Attivazione ReLU $\to$ Uscita al Prossimo Livello.
Passo 2
Qual deve essere la dimensione dell'ultimo livello se la forma di input è $(N, 2)$ e usiamo la perdita BCE?
Soluzione:
L'ultimo livello deve avere dimensione $(N, 1)$ per produrre un singolo punteggio di probabilità per ogni campione, in accordo con la forma dell'etichetta.
L'ultimo livello deve avere dimensione $(N, 1)$ per produrre un singolo punteggio di probabilità per ogni campione, in accordo con la forma dell'etichetta.